﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Lola.Servicio;

namespace Lola.Vista.Porteria
{
    public partial class xfrmEgresoGalpon : Form
    {
        private String _galpon = String.Empty;
        private String _sector = String.Empty;
        private String _codigoServicio = String.Empty;

        public xfrmEgresoGalpon(String galpon, String sector, String codigoServicio)
        {
            this._galpon = galpon;
            this._sector = sector;
            this._codigoServicio = codigoServicio;

            InitializeComponent();

            CargarPantalla();

        }

        private void CargarPantalla() {

            DTO.dtoServicio datosServicio = Sistema.getInstancia().ObtenerDatosServicio(this._codigoServicio);

            this.txtDestino.Text = datosServicio.Destino;
            this.txtOrigen.Text = datosServicio.Origen;
            this.txtSalida.Text = datosServicio.FechaSalida;
            this.txtServicio.Text = datosServicio.CodigoServicio;
            this.txtInterno.Text = datosServicio.Interno.ToString();

            List<DTO.Grilla.dtoChoferG> choferes = Sistema.getInstancia().obtenerChoferesdeUnServicio(this._codigoServicio);
            this.gridControl2.DataSource = choferes;

        }

        private void btnControlAlcoholemia_Click(object sender, EventArgs e)
        {

            Int32 legajoChofer = obtenerChoferElegido();

            if (legajoChofer == -1)
            {
                MessageBox.Show(
                    "Debe seleccionar un chofer " , 
                    "Control de Alcoholemia", 
                    MessageBoxButtons.OK, 
                    MessageBoxIcon.Error);
                return;
            }

            xfrmControlAlcoholemiaAlta frm = new xfrmControlAlcoholemiaAlta(
                this._galpon, 
                this._sector, 
                _codigoServicio,
                ((Lola.DTO.Grilla.dtoChoferG)this.gridView3.GetRow(this.gridView3.GetSelectedRows()[0]))
                );
            frm.ShowDialog();
        }

        private int obtenerChoferElegido()
        {
            Int32 resultado = -1;
            try
            {
                resultado = ((Lola.DTO.Grilla.dtoChoferG)this.gridView3.GetRow(this.gridView3.GetSelectedRows()[0])).Legajo;
            }
            catch (Exception)
            { }
            return resultado;
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            Boolean resultado = Sistema.getInstancia().RegistrarSalidadeGalpon(this._galpon, this._sector, this._codigoServicio);
            if (resultado)
            {
                 MessageBox.Show(
                    "El servicio " + _codigoServicio + " salio exitosamente de " + _galpon, 
                    "Salida de " + this._galpon, 
                    MessageBoxButtons.OK, 
                    MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show(
                   "El servicio " + _codigoServicio + " no puede salir de " + _galpon,
                   "Salida de " + this._galpon,
                   MessageBoxButtons.OK,
                   MessageBoxIcon.Error);
            }
            this.Dispose();
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }
    }
}
